@echo off
chcp 65001 > nul
echo [正在清理 Cursor 缓存文件...]
echo.

echo [检查 Cursor 安装位置...]
set "CURSOR_FOUND=false"

:: 检查并显示 Cursor 可能的位置
if exist "%APPDATA%\Cursor" (
    echo 找到位置: %APPDATA%\Cursor
    set "CURSOR_FOUND=true"
)
if exist "%LOCALAPPDATA%\Cursor" (
    echo 找到位置: %LOCALAPPDATA%\Cursor
    set "CURSOR_FOUND=true"
)
if exist "%LOCALAPPDATA%\Programs\Cursor" (
    echo 找到位置: %LOCALAPPDATA%\Programs\Cursor
    set "CURSOR_FOUND=true"
)
if exist "%USERPROFILE%\.cursor" (
    echo 找到位置: %USERPROFILE%\.cursor
    set "CURSOR_FOUND=true"
)

if "%CURSOR_FOUND%"=="false" (
    echo.
    echo [错误] 未找到 Cursor 的安装位置！
    echo 请确认 Cursor 是否正确安装。
    echo.
    pause
    exit /b 1
)

echo.
echo [开始清理...]
echo.

echo [1/7] 清理对话历史记录...
if exist "%APPDATA%\Cursor\User\globalStorage\cursor.cursor\chat" (
    echo     - 清理聊天记录
    rmdir /s /q "%APPDATA%\Cursor\User\globalStorage\cursor.cursor\chat" 2>nul
)
if exist "%APPDATA%\Cursor\User\globalStorage\cursor.cursor\conversations" (
    echo     - 清理对话存储
    rmdir /s /q "%APPDATA%\Cursor\User\globalStorage\cursor.cursor\conversations" 2>nul
)
echo     - 已完成对话历史清理

echo [2/7] 清理 AppData\Roaming 下的缓存...
if exist "%APPDATA%\Cursor" (
    rmdir /s /q "%APPDATA%\Cursor\Cache" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\Code Cache" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\GPUCache" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\Service Worker\CacheStorage" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\Service Worker\ScriptCache" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\CachedData" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\CachedExtensions" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\CachedExtensionVSIXs" 2>nul
    rmdir /s /q "%APPDATA%\Cursor\Crashpad" 2>nul
    echo     - 已完成 AppData\Roaming 清理
) else (
    echo     - AppData\Roaming 中未找到 Cursor 缓存
)

echo [3/7] 清理 AppData\Local 下的缓存...
if exist "%LOCALAPPDATA%\Cursor" (
    rmdir /s /q "%LOCALAPPDATA%\Cursor\Cache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Cursor\Code Cache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Cursor\GPUCache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Cursor\Service Worker\CacheStorage" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Cursor\Service Worker\ScriptCache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Cursor\User\workspaceStorage" 2>nul
    echo     - 已完成 AppData\Local 清理
) else (
    echo     - AppData\Local 中未找到 Cursor 缓存
)

echo [4/7] 清理 Programs 目录下的缓存...
if exist "%LOCALAPPDATA%\Programs\Cursor" (
    rmdir /s /q "%LOCALAPPDATA%\Programs\Cursor\Cache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Programs\Cursor\Code Cache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Programs\Cursor\GPUCache" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Programs\Cursor\Service Worker\CacheStorage" 2>nul
    rmdir /s /q "%LOCALAPPDATA%\Programs\Cursor\Service Worker\ScriptCache" 2>nul
    echo     - 已完成 Programs 目录清理
) else (
    echo     - Programs 目录中未找到 Cursor 缓存
)

echo [5/7] 清理用户目录下的缓存...
if exist "%USERPROFILE%\.cursor" (
    rmdir /s /q "%USERPROFILE%\.cursor\cache" 2>nul
    rmdir /s /q "%USERPROFILE%\.cursor\GPUCache" 2>nul
    rmdir /s /q "%USERPROFILE%\.cursor\logs" 2>nul
    rmdir /s /q "%USERPROFILE%\.cursor\Crashpad" 2>nul
    echo     - 已完成用户目录清理
) else (
    echo     - 用户目录中未找到 Cursor 缓存
)

echo [6/7] 清理日志和临时文件...
del /f /q "%APPDATA%\Cursor\*.log" 2>nul
del /f /q "%LOCALAPPDATA%\Cursor\*.log" 2>nul
del /f /q "%LOCALAPPDATA%\Programs\Cursor\*.log" 2>nul
del /f /q "%TEMP%\Cursor-*" 2>nul
echo     - 已完成日志清理

echo [7/7] 清理工作区存储...
if exist "%APPDATA%\Cursor\User\workspaceStorage" (
    rmdir /s /q "%APPDATA%\Cursor\User\workspaceStorage" 2>nul
    echo     - 已完成工作区存储清理
)

echo.
echo [清理完成]
echo 提示：
echo 1. 请重启 Cursor 以获得最佳体验
echo 2. 如果仍然卡顿，建议：
echo    - 定期清理对话历史记录
echo    - 避免在单个对话中累积太多内容
echo    - 关闭不需要的扩展
echo    - 减少同时打开的文件数量
echo    - 在设置中禁用不需要的功能
echo    - 确保系统有足够的可用内存
echo.
pause 